package com.winhxd.b2c.common.util;

import com.winhxd.b2c.common.constant.BusinessCode;
import com.winhxd.b2c.common.exception.BusinessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/** 校验密码强度
 * @author genghaifei
 * @date 2019/1/8 10:22
 * @Description
 * @Version
 */
public class CheckPasswdUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(CheckPasswdUtil.class);

    /**
     * 密码强度
     *
     * @return Z = 字母 S = 数字 T = 特殊字符
     */

    public static void main(String[] args) {
        checkPassword("ABC");
    }


    public static void checkPassword(String newPwd) {

        // 判断密码是否包含数字：包含返回1，不包含返回0
        int i = newPwd.matches(".*\\d+.*") ? 1 : 0;

        // 判断密码是否包含字母：包含返回1，不包含返回0
        int j = newPwd.matches(".*[a-zA-Z]+.*") ? 1 : 0;

        // 判断密码是否包含特殊符号(~!@#$%^&*()_+|<>,.?/:;'[]{}\)：包含返回1，不包含返回0
        // int k = newPwd.matches(".*[~!@#$%^&*()_+|<>,.?/:;'\\[\\]{}\"]+.*") ? 1 : 0;

        // 判断密码长度是否在6-15位
        int l = newPwd.length();

        // 判断密码中是否包含用户名
        // boolean contains = newPwd.contains(userId);

        if (i + j < 2 || l < 6 || l > 15) {
            LOGGER.info("密码不合格 pwd = {}" , newPwd);
            throw new BusinessException(BusinessCode.CODE_1021);
        }
    }


//    public static void checkUserName(String newUserName) {
//
//        // 判断密码是否包含数字：包含返回1，不包含返回0
//        int i = newUserName.matches(".*\\d+.*") ? 1 : 0;
//
//        // 判断密码是否包含字母：包含返回1，不包含返回0
//        int j = newUserName.matches(".*[a-zA-Z]+.*") ? 1 : 0;
//
//        // 判断密码是否包含特殊符号(~!@#$%^&*()_+|<>,.?/:;'[]{}\)：包含返回1，不包含返回0
//        // int k = newPwd.matches(".*[~!@#$%^&*()_+|<>,.?/:;'\\[\\]{}\"]+.*") ? 1 : 0;
//
//        // 判断密码长度是否在6-15位
//        int l = newUserName.length();
//
//        // 判断密码中是否包含用户名
//        // boolean contains = newPwd.contains(userId);
//
//        if (i + j < 2 || l < 6 || l > 15) {
//            LOGGER.info("用户名 newUserName = {}" , newUserName);
//            throw new BusinessException(BusinessCode.CODE_1022);
//        }
//    }


}
